//package com.openai.utils;
//
//import com.auth0.jwt.JWT;
//import com.auth0.jwt.algorithms.Algorithm;
//import com.google.common.cache.Cache;
//import com.google.common.cache.CacheBuilder;
//
//import java.util.HashMap;
//import java.util.Map;
//import java.util.concurrent.TimeUnit;
//
//import static com.google.common.net.MediaType.JWT;
//
///**
// * chatgml JWT工具类
// * 签名secret 获取token
// */
//public class JWTUtils {
//
//    // 过期时间；默认30分钟
//    private static final long expireMillis = 30 * 60 * 1000L;
//
//    //设置缓存
//    private static final Cache<String, String> cache = CacheBuilder.newBuilder()
//            .expireAfterWrite(expireMillis - 1000, TimeUnit.MILLISECONDS).build();
//
//    /**
//     * @param apiKey
//     * @param apiSecret
//     * @return
//     * @document 获取token https://open.bigmodel.cn/dev/api#nosdk
//     */
//    public static String getToken(String apiKey, String apiSecret) {
//
//        //获取token
//        String token = cache.getIfPresent(apiKey);
//        if (token != null) return token;
//
//        //使用 JWT 组装 , 创建token
//        //header
//        Map<String, Object> header = new HashMap<>();
//        header.put("alg", "HS256");
//        header.put("sign_type", "SIGN");
//



//        //payload
//        Map<String, Object> payload = new HashMap<>();
//        payload.put("api_key", apiKey);
//        payload.put("exp", System.currentTimeMillis() + expireMillis);
//        payload.put("timestamp", System.currentTimeMillis());
//
//        //JWT 签名
//        token = JWT.create().withHeader(header).withPayload(payload).sign(Algorithm.HMAC256(apiSecret));
//        return token;
//    }
//}
